program testArrayAssignmentValid;
class testArrayAssignmentValid

BEGIN

VAR XRay : ARRAY[0 .. 4] OF integer;
	YRay : ARRAY[8 .. 12] OF integer;
	AA   : testArrayAssignmentValid;
	Blah : number2;
	ZZ   : integer;    
	XX   : integer;    
	YY   : integer;
        BB   : boolean;	

FUNCTION testArrayAssignmentValid;
BEGIN
	XRay[0] := YRay[8];
	AA := new testArrayAssignmentValid;
	AA.AA := new testArrayAssignmentValid;
	AA.AA.AA := new testArrayAssignmentValid;
	AA.AA.AA.XX := 1;
	AA.Blah.testingShit;
	ZZ := AA.doSomething(1, doSomething(2, doSomething(6,7)));
	doSomething(5, 6);
	Blah := new number2(1);
	print AA
END;

FUNCTION doSomething(val1, val2 : integer): integer;
BEGIN
	doSomething := 1; 
	ZZ := 1;
	YY := 2
END

END

class number2

BEGIN

VAR Blah : integer;

FUNCTION testingShit;
BEGIN
	Blah := 2;
	Blah := 3
END;

FUNCTION number2(val1 : integer): number2;
BEGIN
	number2 := this;
	Blah := val1
END

END

														       .
